package com.lss.studydemo.callback;

// 4. 主程序 - 模拟整个点餐过程
public class TakeawayCallbackDemo {
    public static void main(String[] args) {
        // 创建用户
        User user = new User("小明");
        
        // 创建餐厅
        Restaurant restaurant = new Restaurant();
        
        System.out.println("---------- 开始点餐流程 ----------");
        
        // 点餐并注册回调
        System.out.println("小明：点一份鱼香肉丝饭");
        // 这里是回调函数的具体实现 - 相当于"接到电话后怎么做"
        restaurant.prepareMeal("鱼香肉丝饭", user::receiveMeal);
        
        // 点餐后继续自己的生活 - 不会干等外卖
        user.watchDrama("甄嬛传");
        user.playGame("原神");
        
        // 主线程等待一段时间，确保能看到回调结果
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}